Bochs User Manual | ||
---|---|---|
Prev | Chapter 9. Guest operating systems |
Contributed by Carl Sopchak
You must read the message regarding software licenses in the Section called Third Party Software Licensing and Temporary Files in Chapter 1 before you install SCO OpenServer 5.0.5 as a guest operating system in Bochs.
Back in April and May of 2002, I did some work on Bochs in order to get it to install and boot SCO's OpenServer 5.0.5 (OSR5). Since that time, I have had several e-mails asking about this error message or that. The newsgroup posts done at the time had all of the information that I knew, so I pointed people there. (I had not used Bochs since...) In February of 2003, I got another such e-mail. Since the sender indicated they were willing to pay me to get this going for them, I agreed to spend a few hours on it (for free, which is not common :-}). Subsequently, I decided to document this once and for all. (I did not charge anyone anything, this time...)
Note: These steps were originally used with Bochs 1.4.1 (or thereabouts, since I was using CVS heavily at the time). It is possible (likely) that later versions of Bochs are more tolerant/bug free, and this install may be abbreviated. However, I have not tried to streamline it at all.
These steps were performed and confirmed using Bochs version 2.0.2, and SCO OpenServer version 5.0.5. The host OS was Red Hat Linux 8.0.
First, I downloaded the tarball, and extracted the source tree. I decided to use the tarball instead of the RPM so that I knew what options were compiled in, etc.
linux-$ tar -xzvf bochs-2.0.2.tar.gz |
Next, I configured and compiled Bochs...
linux-$ cd bochs-2.0.2 linux-$ ./configure --enable-cdrom --enable-ne2000 --enable-host-specific-asms linux-$ make |
I then created my disk image:
linux-$ ./bximage ======================================================================== bximage Disk Image Creation Tool for Bochs $Id: user.dbk,v 1.138 2004/01/11 10:29:51 vruppert Exp $ ======================================================================== Do you want to create a floppy disk image or a hard disk image? Please type hd or fd. [hd] hd What kind of image should I create? Please type flat, sparse or growing. [flat] Enter the hard disk size in megabytes, between 1 and 32255 [10] 2048 I will create a hard disk image with cyl=4161 heads=16 sectors per track=63 total sectors=4194288 total size=2047.99 megabytes What should I name the image? [c.img] hd0.img Writing: [] Done. I wrote 2147475456 bytes to hd0.img. The following line should appear in your .bochsrc: ata0-master: type=disk, path="hd0.img", cylinders=4161, heads=16, spt=63 |
I then created my .bochsrc file. I did this via the interactive portion of Bochs, with the end result as follows:
floppya: 1_44="/dev/fd0", status=inserted floppyb: 1_44="b.img", status=inserted ata0: enabled=1, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14 ata0-master: type=disk, path="hd0.img", cylinders=4161, heads=16, spt=63, translation=auto, biosdetect=auto, model="Generic 1234" ata0-slave: type=cdrom, path="/dev/cdrom", status=inserted, biosdetect=auto, model="Generic 1234" ata1: enabled=0 ata2: enabled=0 ata3: enabled=0 romimage: file=bios/BIOS-bochs-latest, address=0xf0000 vgaromimage: bios/VGABIOS-elpin-2.40 megs: 64 parport1: enabled=1, file="lp.pipe" com1: enabled=0 # no sb16 boot: cdrom floppy_bootsig_check: disabled=0 vga_update_interval: 300000 keyboard_serial_delay: 250 keyboard_paste_delay: 100000 floppy_command_delay: 500 ips: 3000000 pit: realtime=1 text_snapshot_check: 0 mouse: enabled=0 private_colormap: enabled=0 i440fxsupport: enabled=0 time0: 0 # no ne2k newharddrivesupport: enabled=1 # no loader log: osr5.log logprefix: %t-%e-%i%d debugger_log: - panic: action=ask error: action=report info: action=report debug: action=ignore pass: action=fatal keyboard_mapping: enabled=0, map= keyboard_type: mf user_shortcut: keys=none config_interface: textconfig display_library: x |
At this point, Bochs is ready to roll! Insert the OSR5 install CD into the drive, and start Bochs. You should soon see the SCO "boot:" prompt:
SCO OpenServer(TM) Release 5 boot : defbootstr disable=fdi,dptr |
During the install of OSR5, there are two default configuration answers that need to be changed. For the hard disk setup, you should turn bad tracking off, since it's unnecessary on an emulated disk. (It won't hurt to do it, it will just take a VERY long time!) For the network setup, change the network card to Deferred. You can change other settings, if you so desire. However, I would do the initial install with as little configured as you can get away with, then add whatever else is needed (one step at a time) after the initial install completes.
Let the install copy the files. Go get lunch. Take a nap. Go have dinner... This can take a LONG time. On my Pentium 4 1.7GHz system, this step took just over eight hours! (BTW, it was MUCH longer in version 1.4.1. Great job, guys!)
After the install finishes, you will need to change the following lines in .bochsrc file:
ne2k: ioaddr=0x280, irq=10, mac=b0:c4:20:00:00:00, ethmod=linux, ethdev=eth0 boot: c |
linux-$ chown root bochs linux-$ chmod u+s bochs |
Before you configure the network card, I'd strongly suggest getting the latest "nat" driver from SCO. Version 5.0.5b of this driver, according to the SCO web site, "correct[s] possible system lockup under high load due to internal buffer overflow." The driver can be found here. To get the Disk Image file into SCO, I downloaded the VOL.000.000 file to my linux box, and used tar to get it on to a floppy:
linux-$ tar -cvf /dev/fd0 VOL.000.000 |
osr5-# cd /tmp osr5-# tar -xvf /dev/fd0135ds18 |
You can also configure a printer, if you want. Using the spoolpipe utility that I wrote (which can be found in Bochs's misc directory), you can print from OSR5 through the parallel port, and you'll hardly notice that the printing is going through an extra layer of operating system! (You could also set up a printer using network printing, if the printer is not on the host machine...)
Obviously, dont forget to apply the release supplements and other patches that are considered "must haves" for OSR5: rs505a, oss600a, oss497b (others?).
That's about as far as I have got. I played around with OSR5 within Bochs a bit, but I can by no means say that I did any kind of real testing, let alone exhaustive testing.
And of course, YMMV! :-)